/**
 * @(#)PersonImpl.java
 * 1.0, 2013-01-24
 */
package de.hdm.gruppenkalender.team04.data;

import java.rmi.RemoteException;
import java.rmi.server.UnicastRemoteObject;

// <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
// #[regen=yes,id=DCE.2479B94C-7484-9E32-E13B-FEFE2B8EE881]
// </editor-fold>
/**
 * Implementierungsklasse des Interface {@link Person}
 *
 * @author Mathias Bendel (mb167)
 * @author Björn Fichnter (bf023)
 * @author Stefan Hettich (sh176)
 * @author René Kugel (rk044)
 * @author Mark Leonberger (ml072)
 * @author Marta Przybylski (mp070)
 *
 * @version 1.0, 2013-01-24
 *
 * @see Person
 */
public class PersonImpl extends UnicastRemoteObject implements Person {

    // <editor-fold defaultstate="collapsed" desc=" UML Marker ">
    // #[regen=yes,id=DCE.EF26159B-25FF-C698-A15F-017245C89F8C]
    // </editor-fold> 
    /**
     * beinhaltet die personenId
     */
    private int personId;
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.90FEF594-20A2-52AF-E977-63896759207F]
    // </editor-fold> 
    /**
     * beinhaltet den Vornamen
     */
    private String vorname;
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.7FA96CF0-8EB9-28DE-7E2A-B76207A1B0DC]
    // </editor-fold> 
    /**
     * beinhaltet den Nachnamen
     */
    private String nachname;
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.AE09C9A4-E3D8-F31A-0683-9773045C9649]
    // </editor-fold> 
    /**
     * beinhaltet den Raum
     */
    private String raum;
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.4AF3E39E-2013-09E5-BCA8-82FB99C36F94]
    // </editor-fold> 
    /**
     * beinhaltet die telefonnummer
     */
    private String telefon;
    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.4D9692A0-AC35-0B2C-DB4C-383847916C52]
    // </editor-fold> 
    /**
     * beinhaltet die email-adresse
     */
    private String email;

    /**
     * Konstruktor
     * 
     * @throws RemoteException
     */
    public PersonImpl() throws RemoteException {
        super();
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.31482724-A606-D542-A67B-5CB05C53B657]
    // </editor-fold> 
    /**
     * Gibt die ID der {@link Person} zurück.
     *
     * @return  int             personId
     * @throws  RemoteException
     */
    public int getPersonId() throws RemoteException {
        return this.personId;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.6BD3CCF9-921A-D0D4-9810-1F2D0EBD727E]
    // </editor-fold> 
    /**
     * Setzt eine neue ID der {@link Person}.
     *
     * @param   personId
     * @throws  RemoteException
     */
    public void setPersonId(int personId) throws RemoteException {
        this.personId = personId;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.AE82BFE3-D2EE-0139-CE24-16AC01C72074]
    // </editor-fold> 
    /**
     * Gibt den Nachnamen der {@link Person} zurück.
     *
     * @return  String          nachname
     * @throws  RemoteException
     */
    public String getNachname() throws RemoteException {
        return this.nachname;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.86C9326E-B353-4744-A77E-65CE264C0D23]
    // </editor-fold> 
    /**
     * Setzt einen neuen Nachnamen.
     *
     * @param   nachname
     * @throws  RemoteException
     */
    public void setNachname(String nachname) throws RemoteException {
        this.nachname = nachname;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.43092001-5A96-52CE-7365-DDF58F141E99]
    // </editor-fold> 
    /**
     * Gibt den Vornamen der {@link Person} zurück.
     *
     * @return  String          vorname
     * @throws  RemoteException
     */
    public String getVorname() throws RemoteException {
        return this.vorname;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.8D9E597C-2137-24CE-7D6C-4B02D420DC70]
    // </editor-fold> 
    /**
     * Setzt einen neuen Vornamen.
     *
     * @param   vorname
     * @throws  RemoteException
     */
    public void setVorname(String vorname) throws RemoteException {
        this.vorname = vorname;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.D3B001B9-18D2-F3C9-3D85-F7182ACA92F7]
    // </editor-fold> 
    /**
     * Gibt den Raum der {@link Person} zurück.
     *
     * @return  String          raum
     * @throws  RemoteException
     */
    public String getRaum() throws RemoteException {
        return this.raum;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.EC56A7E4-E1F5-4E62-7AEC-41A63F98C64D]
    // </editor-fold> 
    /**
     * Setzt einen neuen Raum.
     *
     * @param   raum
     * @throws  RemoteException
     */
    public void setRaum(String raum) throws RemoteException {
        this.raum = raum;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.C8B64917-D162-4509-4695-8B4EE4BFE6A4]
    // </editor-fold> 
    /**
     * Gibt die Telefon-Nummer der {@link Person} zurück.
     *
     * @return  String          telefon
     * @throws  RemoteException
     */
    public String getTelefon() throws RemoteException {
        return this.telefon;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.EBA524EF-FF3B-5859-FB8E-7399DE7313D9]
    // </editor-fold> 
    /**
     * Setzt eine neue Telefon-Nummer.
     *
     * @param   telefon
     * @throws  RemoteException
     */
    public void setTelefon(String telefon) throws RemoteException {
        this.telefon = telefon;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.743C7D79-5543-0997-7C95-9BD568A1D84B]
    // </editor-fold> 
    /**
     * Gibt die E-Mail-Adresse der {@link Person} zurück.
     *
     * @return  String          email
     * @throws  RemoteException
     */
    public String getEmail() throws RemoteException {
        return this.email;
    }

    // <editor-fold defaultstate="collapsed" desc=" UML Marker "> 
    // #[regen=yes,id=DCE.6C2FB4AD-B664-444A-0DAE-DB757567C2F1]
    // </editor-fold> 
    /**
     * Setzt eine neue E-Mail-Adresse.
     *
     * @param   email
     * @throws  RemoteException
     */
    public void setEmail(String email) throws RemoteException {
        this.email = email;
    }

    /**
     * Gibt einen eindeutigen Identifikations-String zu Anzeige in der GUI zurück.
     *
     * @return  String          IdentifikationsName
     * @throws  RemoteException
     */
    public String ermittleIdentifikationsName() throws RemoteException {
        return "[" + personId + "] " + nachname + ", " + vorname;
    }
}
